Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Adfweb M-bus To Modbus Converter
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
yamato1945
Уважаемые коллеги !
Не случалось ли кому подключать счетчики тепла Apator LQM III Elf к системе диспетчеризации через
конвертер ADFWeb M-Bus to Modbus converter HD67044-B2 ?
Конкретно интересует вопрос как вытащить текущий показатель количества тепловой энергии в сеть MODBUS через указанный
конвертер, используя интерфейс M-BUS счетчика .
Все остальные параметры (температура, объем, мощность и тп) вытащить удалось, а для количества тепловой энергии нужна какая-то странная нестандартная конфигурация.

Буду рад любому совету, заранее благодарен ...
manjey73
Таки счетчики можно читать без конвертеров от данных товарищей... просто Scada системой, если написать драйвер... правда я год мучался, и сделал только под свои два прибора.

в M-Bus есть нестандартные для протокола вещи, например переменная может быть указана "безразмерная" - как бы она таковой не является, просто производитель сам должен указать размерность. То есть сам протокол не имеет описания на переменную, она полностью на совести производителя прибора.

можете скинуть все телеграммы, которые вы с него получаете в hex виде для проверки ?
yamato1945
Цитата(manjey73 @ 22.7.2019, 20:49) *
Таки счетчики можно читать без конвертеров от данных товарищей... просто Scada системой, если написать драйвер... правда я год мучался, и сделал только под свои два прибора.

в M-Bus есть нестандартные для протокола вещи, например переменная может быть указана "безразмерная" - как бы она таковой не является, просто производитель сам должен указать размерность. То есть сам протокол не имеет описания на переменную, она полностью на совести производителя прибора.

можете скинуть все телеграммы, которые вы с него получаете в hex виде для проверки ?


Не, мне надо через ADFWeb Converter в MODBUS TCP/IP. Скорее всего да, там нестандартный тип данных, но ADFWeb Analyzer их видит, но перевести в MODBUS не может (?) почему-то. Там нестандартный VIF, говорит : VIF is in ASCII. Понять бы что это такое ...
ЗЫ. Спасибо за отклик smile.gif
manjey73
Если говорит что ASCII то значит это строковая переменная (предположительно). Тип переменной то стандартный, просто его сам adfweb может не понимает. А у строк в M-bus может быть любая длина в пределах пакета.

Я почему и просил телеграмму, чтобы проверить в программе, ругнется или нет, ну и хотя бы ручками попробовать понять что там.
з.ы. строковые я не разбирал пока, не попалось у меня в протоколе на моих приборах...

Интересно как он вам строковую переменную переведет в Modbus не имея расширенных наборов функций.
yamato1945
Цитата(manjey73 @ 23.7.2019, 11:36) *
Если говорит что ASCII то значит это строковая переменная (предположительно). Тип переменной то стандартный, просто его сам adfweb может не понимает. А у строк в M-bus может быть любая длина в пределах пакета.

Я почему и просил телеграмму, чтобы проверить в программе, ругнется или нет, ну и хотя бы ручками попробовать понять что там.
з.ы. строковые я не разбирал пока, не попалось у меня в протоколе на моих приборах...

Интересно как он вам строковую переменную переведет в Modbus не имея расширенных наборов функций.


Ну, он же говорит "VIF in ASCII string", я так понимаю, VIF задает "тип" переменных ?
manjey73
Не совсем так, DIF и VIF описывают полученные переменные, а не задают.

От будет весело, если в виде строки там число, типа 0.25 в ascii это 30 2E 32 35

Ну или BCD формат будет, что ваш adfweb сможет ?

з.ы. лог полученной телеграммы в hex у вас есть ? иначе гадать можно долго и нудно на кофейной гущи с этим протоколом. Хоть руками его разобрать и понять что есть что.
yamato1945
Цитата(manjey73 @ 23.7.2019, 12:50) *
Не совсем так, DIF и VIF описывают полученные переменные, а не задают.

От будет весело, если в виде строки там число, типа 0.25 в ascii это 30 2E 32 35

Ну или BCD формат будет, что ваш adfweb сможет ?

з.ы. лог полученной телеграммы в hex у вас есть ? иначе гадать можно долго и нудно на кофейной гущи с этим протоколом. Хоть руками его разобрать и понять что есть что.


Взгляните, пожалуйста, на картинку с ADFWeb Analyzer :

https://dropmefiles.com/fgPaf
manjey73
Так вам же русским языком написали - 12 символов BCD поле данных
значение 727301010000
Ну и про степень там 10 в -1

Опять же, я так понимаю, вы можете не использовать это значение, сняв галочку.
А в Modbus вы можете только значение Value передать ?, указать на другое поле никак ? просто не общался с adfweb в рамках M-Bus и после общения с их SNMP-Modbus даже не хочется...
manjey73
Multiplicative correction factor в степени 10nnn-6, смотрите как первые три бита VIFE (75h) преобразовать в степень. Где-то это в документации есть.

А, ну собственно это и есть 10 в минус 1 степени, то есть число надо на 10 поделить всего.

72730101000,0 - вот это будет значением переменной rs
yamato1945
Цитата(manjey73 @ 23.7.2019, 14:45) *
Multiplicative correction factor в степени 10nnn-6, смотрите как первые три бита VIFE (75h) преобразовать в степень. Где-то это в документации есть.

А, ну собственно это и есть 10 в минус 1 степени, то есть число надо на 10 поделить всего.

72730101000,0 - вот это будет значением переменной rs


В том то же и дело, что я не могу ничего получить в MODBUS регистре ! Если бы я хоть что-то получил, я бы уж как-то его преобразовал, но там постоянно - 0 .
Взгляните, пожалуйста, как импортировал эту переменную в проект сам ADFWeb Analyzer :
https://dropmefiles.com/gTbNx

Вот такой он её считает, но всё равно, ничего не считывается, кроме 0.

PS. Вы не знаете, что может обозначать "VIF ASCII String" параметр ? Возможно в нём всё дело
manjey73
Ну так его же надо сделать From BCD to Integer наверное.

Вот что касается работы с adfweb я вам ничем не помогу, ибо я его не знаю. Может его плющит на данной переменной, что-то не допилено и т.д.

Кстати там, где вы покупали его можете запросить в техподдержке, они переправят вопрос со скринами иностранцам и они может быть что-то вразумительное ответят...

я не вижу, где у вас VIF ASCII String
yamato1945
Цитата(manjey73 @ 23.7.2019, 15:16) *
Ну так его же надо сделать From BCD to Integer наверное.

Вот что касается работы с adfweb я вам ничем не помогу, ибо я его не знаю. Может его плющит на данной переменной, что-то не допилено и т.д.

Кстати там, где вы покупали его можете запросить в техподдержке, они переправят вопрос со скринами иностранцам и они может быть что-то вразумительное ответят...

я не вижу, где у вас VIF ASCII String


Ну, я делал все возможные преобразования, какие только можно придумать, в надежде хоть что-то получить smile.gif

Type = Vif in following string

manjey73
Type = Vif in following string

Ну далее то описан формат - 12 цифр BCD с множителем 0.1

Вот по данной проблеме и пишите в техподдержку, с какого ? ну или если переменная не так важна, просто отключите ее.
yamato1945
Цитата(manjey73 @ 23.7.2019, 16:19) *
Type = Vif in following string

Ну далее то описан формат - 12 цифр BCD с множителем 0.1

Вот по данной проблеме и пишите в техподдержку, с какого ? ну или если переменная не так важна, просто отключите ее.


Щас буду пытаться smile.gif

Спасибо Вам большое что откликнулись
manjey73
Та нема за шо. Вообще когда-то думал что M-Bus идиотский протокол, но когда столкнулся с Логикой, то понял что ошибался.... чуть-чуть. Эти вааще превзошли все ожидания smile.gif
yamato1945
Ну, решение найдено.
Если, вдруг, кому-нибудь понадобится :
Для контроля "Количество теплоты" в шлюзе ADFWeb HD67044-B2 нужно прописать :

1. M-Bus Access->"Имя точки"->Type of Data = Vif is in ASCII
2. M-Bus Access->"Имя точки"->VIF ASCII String = kcal
3. Отметить птицей M-Bus Access->"Имя точки"->Convert in float

Получаем значение в КИЛОКАЛОРИЯХ
manjey73
yamato1945 хм, очень странно, или это типа шлюз неправильно воспринял часть данных и указал что они 12BCD ?

Просто BCD формат это далеко не ASCII.

Это то, что техподдержка вам посоветовала и оно сработало ?
yamato1945
Цитата(manjey73 @ 29.7.2019, 14:05) *
yamato1945 хм, очень странно, или это типа шлюз неправильно воспринял часть данных и указал что они 12BCD ?

Просто BCD формат это далеко не ASCII.

Это то, что техподдержка вам посоветовала и оно сработало ?


Это из представительства Apator прислали, хмм, "файлы с особенностями реализации протокола M-Bus для счетчиков".
Хотите, Вам пришлю, токо завтра, с другого компа ?

PS. Я не очень-то хорошо знаю протокол M-Bus (мягко говоря smile.gif). Чисто для себя, для простоты, я представляю себе это значение "kcal" как начало области, где начинаются эти самые BCD-данные
manjey73
Более точно можно было посмотреть по телеграмме из прибора и сверившись с документацией на протокол.
Но для этого надо иметь конвертер USB - MBus, например китайцы продают до 3-5 устройств при питании от USB.
Повесить его на линию ну и снифером порта посмотреть

Ну или другими утилитами какими-то посмотреть.
Вот если бы вы мне такую телеграмму прислали, мне было бы интересно. Так как я не все плюшки протокола в драйвере реализовал. А покупать приборы в поиске нереализованного как-то накладно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.